+2006-08-15 Richard Hult <richard@imendio.com>
+
+ * gdk/quartz/gdkevents-quartz.c: (get_event_mask_from_ns_event):
+ Add GDK button mask for NS dragging events.
+ (create_scroll_event): Remove obsolete comment.
+ (_gdk_quartz_get_current_event_mask), (gdk_event_translate): Keep
+ track of the latest event mask here...
+
+ * gdk/quartz/gdkwindow-quartz.c:
+ (_gdk_windowing_window_get_pointer): And use it here. Patch from
+ Kristian Rietveld.
+ (gdk_window_quartz_update_idle): Rename to make things clearer.
+
2006-08-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintoperationpreview.c:
+2006-08-15 Richard Hult <richard@imendio.com>
+
+ * gdk/quartz/gdkevents-quartz.c: (get_event_mask_from_ns_event):
+ Add GDK button mask for NS dragging events.
+ (create_scroll_event): Remove obsolete comment.
+ (_gdk_quartz_get_current_event_mask), (gdk_event_translate): Keep
+ track of the latest event mask here...
+
+ * gdk/quartz/gdkwindow-quartz.c:
+ (_gdk_windowing_window_get_pointer): And use it here. Patch from
+ Kristian Rietveld.
+ (gdk_window_quartz_update_idle): Rename to make things clearer.
+
2006-08-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintoperationpreview.c:
*/
return GDK_SCROLL_MASK | GDK_BUTTON_PRESS_MASK;
case NSLeftMouseDragged:
- return GDK_POINTER_MOTION_MASK|GDK_POINTER_MOTION_HINT_MASK |
- GDK_BUTTON_MOTION_MASK|GDK_BUTTON1_MOTION_MASK;
+ return (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
+ GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK |
+ GDK_BUTTON1_MASK);
case NSRightMouseDragged:
- return GDK_POINTER_MOTION_MASK|GDK_POINTER_MOTION_HINT_MASK |
- GDK_BUTTON_MOTION_MASK|GDK_BUTTON3_MOTION_MASK;
+ return (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
+ GDK_BUTTON_MOTION_MASK | GDK_BUTTON3_MOTION_MASK |
+ GDK_BUTTON3_MASK);
case NSOtherMouseDragged:
{
GdkEventMask mask;
GDK_BUTTON_MOTION_MASK);
if (convert_mouse_button_number ([nsevent buttonNumber]) == 2)
- mask |= GDK_BUTTON2_MOTION_MASK;
+ mask |= (GDK_BUTTON2_MOTION_MASK | GDK_BUTTON2_MOTION_MASK |
+ GDK_BUTTON2_MASK);
return mask;
}
modifiers |= GDK_CONTROL_MASK;
if (nsflags & NSCommandKeyMask)
modifiers |= GDK_MOD1_MASK;
-
+
/* FIXME: Support GDK_BUTTON_MASK */
return modifiers;
&event->scroll.x_root,
&event->scroll.y_root);
- /* FIXME event->state; */
- /* FIXME event->is_hint; */
event->scroll.direction = direction;
event->scroll.device = _gdk_display->core_pointer;
return event;
}
+static GdkEventMask current_mask = 0;
+GdkEventMask _gdk_quartz_get_current_event_mask (void)
+{
+ return current_mask;
+}
+
static gboolean
gdk_event_translate (NSEvent *nsevent)
{
if (result == GDK_FILTER_REMOVE)
return TRUE;
-
+
+ current_mask = get_event_mask_from_ns_event (nsevent);
+
switch ([nsevent type])
{
case NSLeftMouseDown:
GdkEventType _gdk_quartz_key_event_type (NSEvent *event);
gboolean _gdk_quartz_key_is_modifier (guint keycode);
+GdkEventMask _gdk_quartz_get_current_event_mask (void);
+
extern GdkWindow *_gdk_quartz_keyboard_grab_window;
extern GdkWindow *_gdk_quartz_pointer_grab_window;
}
static gboolean
-gdk_window_update_idle (gpointer data)
+gdk_window_quartz_update_idle (gpointer data)
{
GDK_THREADS_ENTER ();
gdk_window_quartz_process_all_updates ();
if (update_idle == 0)
update_idle = g_idle_add_full (GDK_PRIORITY_REDRAW,
- gdk_window_update_idle, NULL, NULL);
+ gdk_window_quartz_update_idle, NULL, NULL);
}
}
{
point = [NSEvent mouseLocation];
y_tmp = _gdk_quartz_get_inverted_screen_y (point.y);
+ *mask = _gdk_quartz_get_current_event_mask ();
}
else
{
NSWindow *nswindow = impl->toplevel;
point = [nswindow mouseLocationOutsideOfEventStream];
y_tmp = impl->height - point.y;
+ *mask = _gdk_quartz_get_current_event_mask ();
}
x_tmp = point.x;
private = private->parent;
}
- /* FIXME: Implement mask. */
*x = x_tmp;
*y = y_tmp;
- *mask = 0;
return _gdk_quartz_find_child_window_by_point (window,
point.x, point.y,